Location: Intracellular pH regulation @ 920a714dbe07 / models / FAIRDO BG example 5.3.cellml
- Author:
- Weiwei Ai <wai484@aucklanduni.ac.nz>
- Date:
- 2024-02-27 17:21:53+13:00
- Desc:
- Add H buffering in the acid BG model
- Permanent Source URI:
- https://staging.physiomeproject.org/workspace/b61/rawfile/920a714dbe070a8ab1215d82e465d4aaa7216a0a/models/FAIRDO BG example 5.3.cellml
<?xml version='1.0' encoding='UTF-8'?>
<model name="BG51" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#">
<!-- Intracellular pH regulation-->
<units name="dim">
<unit units="dimensionless"/>
</units>
<units name="per_s">
<unit exponent="-1" units="second"/>
</units>
<units name="mol_per_s">
<unit units="mole"/>
<unit exponent="-1" units="second"/>
</units>
<units name="per_mol">
<unit exponent="-1" units="mole"/>
</units>
<units name="per_mol2">
<unit exponent="-2" units="mole"/>
</units>
<units name="C_per_mol">
<unit units="coulomb"/>
<unit exponent="-1" units="mole"/>
</units>
<units name="J_per_mol">
<unit units="joule"/>
<unit exponent="-1" units="mole"/>
</units>
<units name="J_per_C">
<unit units="joule"/>
<unit exponent="-1" units="coulomb"/>
</units>
<component name="main">
<variable initial_value="0" name="t" units="second"/>
<variable initial_value="9.64853321e4" name="F" units="C_per_mol"/>
<variable initial_value="2578.73058" name="RT" units="J_per_mol"/>
<variable initial_value="-0.057" name="u_e_m" units="J_per_C"/>
<variable name="epsilon" units="dim"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>epsilon</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<ci>F</ci>
<ci>u_e_m</ci>
</apply>
<ci>RT</ci>
</apply>
</apply>
</apply>
</math>
<!-- state variables-->
<variable initial_value="0" name="q_CO2_i" units="mole"/>
<variable name="q_CO2_o" units="mole"/>
<variable initial_value="0" name="q_HCO3_i" units="mole"/>
<variable initial_value="0" name="q_HCO3_o" units="mole"/>
<variable initial_value="3.981071705534970e-05" name="q_H_i" units="mole"/>
<variable initial_value="1.995262314968879e-05" name="q_H_o" units="mole"/>
<variable initial_value="0" name="q_NH3_i" units="mole"/>
<variable initial_value="0" name="q_NH3_o" units="mole"/>
<variable initial_value="0" name="q_NH4_i" units="mole"/>
<variable name="q_NH4_o" units="mole"/>
<!-- step change in external CO2-->
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>q_CO2_o</ci>
<piecewise>
<piece>
<cn cellml:units="mole">0</cn>
<apply>
<lt/>
<ci>t</ci>
<cn cellml:units="second">300</cn>
</apply>
</piece>
<piece>
<cn cellml:units="mole">1.1877</cn>
<apply>
<lt/>
<ci>t</ci>
<cn cellml:units="second">3000</cn>
</apply>
</piece>
<otherwise>
<cn cellml:units="mole">0</cn>
</otherwise>
</piecewise>
</apply>
<!-- step change in external NH4+-->
<apply>
<eq/>
<ci>q_NH4_o</ci>
<piecewise>
<piece>
<cn cellml:units="mole">0</cn>
<apply>
<lt/>
<ci>t</ci>
<cn cellml:units="second">4000</cn>
</apply>
</piece>
<piece>
<cn cellml:units="mole">10</cn>
<apply>
<lt/>
<ci>t</ci>
<cn cellml:units="second">4600</cn>
</apply>
</piece>
<otherwise>
<cn cellml:units="mole">0</cn>
</otherwise>
</piecewise>
</apply>
</math>
<!-- substrate solubilities-->
<variable initial_value="0.1" name="K_CO2_s" units="per_mol"/>
<variable initial_value="0.1" name="K_HCO3_s" units="per_mol"/>
<variable initial_value="0.1" name="K_H_s" units="per_mol"/>
<variable initial_value="0.1" name="K_NH3_s" units="per_mol"/>
<variable initial_value="0.1" name="K_NH4_s" units="per_mol"/>
<!-- membrane fluxes for uncharged species (eqn 4.2.10)-->
<variable name="v_CO2_m" units="mol_per_s"/>
<variable initial_value="1" name="E_CO2_0" units="mole"/>
<variable initial_value="1" name="kappa_CO2_3" units="mol_per_s"/>
<variable initial_value="0.1" name="kappa_CO2_4" units="mol_per_s"/>
<variable initial_value="1" name="K_CO2_m" units="per_mol"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_CO2_m</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>E_CO2_0</ci>
<ci>kappa_CO2_3</ci>
<ci>kappa_CO2_4</ci>
<ci>K_CO2_m</ci>
<ci>K_CO2_s</ci>
<apply>
<minus/>
<ci>q_CO2_o</ci>
<ci>q_CO2_i</ci>
</apply>
</apply>
<apply>
<plus/>
<apply>
<times/>
<cn cellml:units="dim">2</cn>
<ci>kappa_CO2_4</ci>
</apply>
<apply>
<times/>
<apply>
<plus/>
<ci>kappa_CO2_3</ci>
<ci>kappa_CO2_4</ci>
</apply>
<ci>K_CO2_s</ci>
<apply>
<plus/>
<ci>q_CO2_o</ci>
<ci>q_CO2_i</ci>
</apply>
</apply>
<apply>
<times/>
<cn cellml:units="dim">2</cn>
<ci>kappa_CO2_3</ci>
<ci>K_CO2_s</ci>
<ci>K_CO2_s</ci>
<ci>q_CO2_o</ci>
<ci>q_CO2_i</ci>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="v_NH3_m" units="mol_per_s"/>
<variable initial_value="1" name="E_NH3_0" units="mole"/>
<variable initial_value="1" name="kappa_NH3_3" units="mol_per_s"/>
<variable initial_value="0.1" name="kappa_NH3_4" units="mol_per_s"/>
<variable initial_value="1" name="K_NH3_m" units="per_mol"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_NH3_m</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>E_NH3_0</ci>
<ci>kappa_NH3_3</ci>
<ci>kappa_NH3_4</ci>
<ci>K_NH3_m</ci>
<ci>K_NH3_s</ci>
<apply>
<minus/>
<ci>q_NH3_o</ci>
<ci>q_NH3_i</ci>
</apply>
</apply>
<apply>
<plus/>
<apply>
<times/>
<cn cellml:units="dim">2</cn>
<ci>kappa_NH3_4</ci>
</apply>
<apply>
<times/>
<apply>
<plus/>
<ci>kappa_NH3_3</ci>
<ci>kappa_NH3_4</ci>
</apply>
<ci>K_NH3_s</ci>
<apply>
<plus/>
<ci>q_NH3_o</ci>
<ci>q_NH3_i</ci>
</apply>
</apply>
<apply>
<times/>
<cn cellml:units="dim">2</cn>
<ci>kappa_NH3_3</ci>
<ci>K_NH3_s</ci>
<ci>K_NH3_s</ci>
<ci>q_NH3_o</ci>
<ci>q_NH3_i</ci>
</apply>
</apply>
</apply>
</apply>
</math>
<!-- membrane fluxes for charged species (eqn 3.9.1)-->
<variable name="v_HCO3_m" units="mol_per_s"/>
<variable initial_value="1" name="kappa_HCO3_m" units="mol_per_s"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_HCO3_m</ci>
<apply>
<times/>
<ci>kappa_HCO3_m</ci>
<ci>K_HCO3_s</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>q_HCO3_o</ci>
<ci>epsilon</ci>
</apply>
<ci>q_HCO3_i</ci>
</apply>
</apply>
</apply>
</math>
<variable name="v_H_m" units="mol_per_s"/>
<variable initial_value="1" name="kappa_H_m" units="mol_per_s"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_H_m</ci>
<apply>
<times/>
<ci>kappa_H_m</ci>
<ci>K_H_s</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>q_H_o</ci>
<ci>epsilon</ci>
</apply>
<ci>q_H_i</ci>
</apply>
</apply>
</apply>
</math>
<variable name="v_NH4_m" units="mol_per_s"/>
<variable initial_value="1" name="kappa_NH4_m" units="mol_per_s"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_NH4_m</ci>
<apply>
<times/>
<ci>kappa_NH4_m</ci>
<ci>K_NH4_s</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>q_NH4_o</ci>
<ci>epsilon</ci>
</apply>
<ci>q_NH4_i</ci>
</apply>
</apply>
</apply>
</math>
<!-- dissociation fluxes-->
<variable name="v_CO2_i" units="mol_per_s"/>
<variable name="v_CO2_o" units="mol_per_s"/>
<variable initial_value="1" name="kappa_CO2" units="mol_per_s"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_CO2_i</ci>
<apply>
<times/>
<ci>kappa_CO2</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>K_CO2_s</ci>
<ci>q_CO2_i</ci>
</apply>
<apply>
<times/>
<ci>K_HCO3_s</ci>
<ci>q_HCO3_i</ci>
<ci>K_H_s</ci>
<ci>q_H_i</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>v_CO2_o</ci>
<apply>
<times/>
<ci>kappa_CO2</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>K_CO2_s</ci>
<ci>q_CO2_o</ci>
</apply>
<apply>
<times/>
<ci>K_HCO3_s</ci>
<ci>q_HCO3_o</ci>
<ci>K_H_s</ci>
<ci>q_H_o</ci>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="v_NH4_i" units="mol_per_s"/>
<variable name="v_NH4_o" units="mol_per_s"/>
<variable initial_value="1" name="kappa_NH4" units="mol_per_s"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>v_NH4_i</ci>
<apply>
<times/>
<ci>kappa_NH4</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>K_NH4_s</ci>
<ci>q_NH4_i</ci>
</apply>
<apply>
<times/>
<ci>K_NH3_s</ci>
<ci>q_NH3_i</ci>
<ci>K_H_s</ci>
<ci>q_H_i</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>v_NH4_o</ci>
<apply>
<times/>
<ci>kappa_NH4</ci>
<apply>
<minus/>
<apply>
<times/>
<ci>K_NH4_s</ci>
<ci>q_NH4_o</ci>
</apply>
<apply>
<times/>
<ci>K_NH3_s</ci>
<ci>q_NH3_o</ci>
<ci>K_H_s</ci>
<ci>q_H_o</ci>
</apply>
</apply>
</apply>
</apply>
<!-- conservation equations-->
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_CO2_i</ci>
</apply>
<apply>
<minus/>
<ci>v_CO2_m</ci>
<ci>v_CO2_i</ci>
</apply>
</apply>
<!-- ode(q_CO2_o, t) = -v_CO2_m-v_CO2_o;-->
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_HCO3_i</ci>
</apply>
<apply>
<plus/>
<ci>v_HCO3_m</ci>
<ci>v_CO2_i</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_HCO3_o</ci>
</apply>
<apply>
<plus/>
<apply>
<minus/>
<ci>v_HCO3_m</ci>
</apply>
<ci>v_CO2_o</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_H_i</ci>
</apply>
<apply>
<plus/>
<ci>v_H_m</ci>
<ci>v_CO2_i</ci>
<ci>v_NH4_i</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_H_o</ci>
</apply>
<apply>
<plus/>
<apply>
<minus/>
<ci>v_H_m</ci>
</apply>
<ci>v_CO2_o</ci>
<ci>v_NH4_o</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_NH3_i</ci>
</apply>
<apply>
<plus/>
<ci>v_NH3_m</ci>
<ci>v_NH4_i</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_NH3_o</ci>
</apply>
<apply>
<plus/>
<apply>
<minus/>
<ci>v_NH3_m</ci>
</apply>
<ci>v_NH4_o</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_NH4_i</ci>
</apply>
<apply>
<minus/>
<ci>v_NH4_m</ci>
<ci>v_NH4_i</ci>
</apply>
</apply>
</math>
<!-- ode(q_NH4_o, t) = -v_NH4_m-v_NH4_o;-->
<variable name="pH_i" units="dim"/>
<variable name="pH_o" units="dim"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>pH_i</ci>
<apply>
<minus/>
<apply>
<log/>
<apply>
<times/>
<cn cellml:units="per_mol" type="e-notation">1<sep/>-3</cn>
<ci>q_H_i</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>pH_o</ci>
<apply>
<minus/>
<apply>
<log/>
<apply>
<times/>
<cn cellml:units="per_mol" type="e-notation">1<sep/>-3</cn>
<ci>q_H_o</ci>
</apply>
</apply>
</apply>
</apply>
</math>
<!-- // Nernst relations (to check that molar qtys satisfy equilibrium conditions)-->
<!-- var u_HCO3_Nernst: J_per_C;
var u_H_Nernst: J_per_C;
var u_NH4_Nernst: J_per_C;-->
<!-- u_HCO3_Nernst = RT/F*ln(q_HCO3_o/q_HCO3_i);
u_H_Nernst = RT/F*ln(q_H_o/q_H_i);
u_NH4_Nernst = RT/F*ln(q_NH4_o/q_NH4_i);-->
</component>
</model>
